package test21.homeWork;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

//编写一个接收端A,和一个发送端B，使用UDP协议完成
//接收端在 8888端口等待接收数据(receive)
//发送端向接收端 发送 数据"四大名著是哪些"
//接收端接收到 发送端发送的 问题后，返回"四大名著是<<红楼梦>>否则返回what?
//接收端和发送端程序退出
public class Homework02ReceiverA {
    public static void main(String[] args) throws IOException {
        //创建一个 DatagramSocket 对象，准备在8888接收数据
        DatagramSocket socket = new DatagramSocket(8888);
        //构建一个 DatagramPacket 对象，准备接收数据
        byte[] buf = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buf, buf.length);
        System.out.println("接收端 等待接收问题 ");
        socket.receive(packet);

        //拆分packet
        int length = packet.getLength();
        byte[] data = packet.getData();
        String s = new String(data, 0, length);
        //判断接收到的信息是什么
        String answer = "";
        if("四大名著是哪些".equals(s)) {
            answer = "四大名著 <<红楼梦>> <<三国演示>> <<西游记>> <<水浒传>>";
        } else {
            answer = "what?";
        }

        //===回复信息给B端
        //将需要发送的数据，封装到 DatagramPacket对象
        data = answer.getBytes();
        packet =
                new DatagramPacket(data, data.length, InetAddress.getByName("192.168.12.1"), 9998);
        socket.send(packet);//发送
        //关闭资源
        socket.close();
        System.out.println("A端退出...");
    }
}